This patent document relates to peer-to-peer networks and media streaming.
Live media streaming applications can use one or more techniques to package and deliver a media stream from a source server to one or more viewer clients. The media stream can be sent via packets to the viewer clients over an Internet Protocol (IP) based network using transport layer protocols such as User Datagram Protocol (UDP) or a Transmission Control Protocol (TCP). An additional protocol(s), such as Hypertext Transfer Protocol (HTTP), can be used on top of a transport layer protocol to further facilitate delivery of media fragments within a media stream to a viewer client.
Packets derived from the media stream can be transmitted on a communication network which can forward the packets to one or more endpoints such as networked computers. A network can support one or more different native communication channels such as unicast and multicast. A unicast data packet can be delivered to a specific endpoint over a unicast channel. A multicast data packet can be delivered to multiple endpoints, each belonging to a multicast group, over a native multicast channel.
Multicasting is the ability of one or more endpoints to send one or more packets to multiple recipients, and often, a large number of recipients. Multicasting on an Internet Protocol (IP) based network such as the Internet can include using native network multicast that utilizes an address range reserved for multicasting. If packets are transmitted into a multicast enabled network with a multicast address as the destination, then endpoints subscribed to the multicast, regardless of their location, may receive the packets. Unfortunately, however, such native network multicasting may be disabled between some networks that constitute the Internet. For instance, native network multicasting may work inside an office's local area network but may not work between different local area networks connected by a larger network.
A different type of multicasting can form a virtual multicast channel using unicast channels between different endpoints to effect multicasting. For example, application level multicasting can use an overlay on top of a network, such as the Internet, to effect multicasting between endpoints associated with a communication group, e.g., peers in a peer-to-peer (P2P) network. In some cases, a peer-to-peer network can be implemented as a mesh. An endpoint that is participating in a communication group can be referred to as a peer. Application level multicasting can include forwarding traffic from one endpoint to a different endpoint which, in turn, forwards the traffic to additional endpoints participating in the peer-to-peer network using different unicast channels. An overlay topology associated with a peer-to-peer network can feature endpoints arranged in trees, meshes, rings, arbitrary random topologies, and other distributed structures.